#ifndef __PROPERTYEDITORW_H_
#define __PROPERTYEDITORW_H_

#include <QWidget>

QT_FORWARD_DECLARE_CLASS(QDesignerPropertyEditorInterface)

class PropertyEditorW : public QWidget
{
    Q_OBJECT
    Q_CLASSINFO("ClassID", "{322297bd-c966-4bc0-8d07-3d6d5211b835}")
    Q_CLASSINFO("InterfaceID", "{f3350690-fdbc-4e7c-9c24-e3af428a9529}")
    Q_CLASSINFO("EventsID", "{65666d23-2fbd-4fbd-bb74-3665ef40b967}")
    Q_CLASSINFO("ToSuperClass", "PropertyEditorW")

public:
    PropertyEditorW(QWidget *parent = 0);
    ~PropertyEditorW();

    QSize minimumSize();
    static PropertyEditorW *instance();

public Q_SLOTS:
    QString pluginFailureString() const;
    void clearSheet();
    bool initializeJambiPlugins(const QString &jambiBase, const QString &jambiPluginPath, const QString &customWidgetClassPath, const QString &resourcePath, const QString &jvm);
    void initialize();
    void updateCustomWidgetLocation(const QString &path);

protected:
    void resizeEvent(QResizeEvent *event);

private:
    QDesignerPropertyEditorInterface *m_editor;
    uint m_initialized : 1;
    static PropertyEditorW *m_self;
};

#endif //__PROPERTYEDITORW_H_
